package main

import "fmt"

type Teacher struct {
	Name  string
	Age   int
	Title string
}

func (t Teacher) teacherInfo() {
	fmt.Printf("姓名:%s,年龄:%d,职称:%s", t.Name, t.Age, t.Title)
}

type Course struct {
	//Teacher Teacher //如果讲师的信息比较多怎么办 将另一个结构体的变量放进来
	Teacher // 匿名结构体
	Name    string
	Price   int
	Url     string
}

//匿名嵌套, 这种做法其实就是 语法糖 还不算是继承 有了前面的方法和这里的内嵌结构体 实际上 继承 封装
func (c Course) courseInfo() {
	fmt.Printf("课程名:%s,价格:%d,讲师信息：%s %d %s", c.Name, c.Price, c.Teacher.Name, c.Age, c.Title) // 重名字段要指明类名
}
func main() {
	t := Teacher{
		Name:  "yule",
		Age:   25,
		Title: "程序员",
	}
	c := Course{
		Teacher: t,
		Price:   25,
		Url:     "",
		Name:    "django",
	}
	c.courseInfo()
}
